package semac.control;

import java.io.IOException;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.Map;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.SAXException;
import semac.entidades.Cobro;

/**
 *
 * @author Ivan Ricardo Flores
 */
public class CtrlCobros {

    private ArrayList<Cobro> cobros = new ArrayList();
    private HttpServletRequest request;
    private Conexion connection;

    public CtrlCobros() throws IOException, ParserConfigurationException, SAXException{
        request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
        String urlFile =  request.getRealPath("/")+ "/WEB-INF/dataBase.xml";
        connection =  new Conexion(urlFile);
    }

    public void insertCobro(Cobro c){

    }

    public void updateCobro(Cobro c ){

    }
    public void getCobro(int codigoCobro){

    }

    public void removeCobro(int codigoCobro){

    }

    //Actualiza los recargos a cobros retrasados
    public void actualizarRecargos(GregorianCalendar fechaActual){

    }

    //Obtiene los cobros retrasados
    public ArrayList<Cobro> getCobrosRetrasados(GregorianCalendar fechaActual){
        return new ArrayList<Cobro>();
    }


    //Se calcula el recargo para un determinado cobro
    private double calcularRecargo(GregorianCalendar fechaActual, Cobro c){
        return 0.0;
    }

    //Obtiene los cobros de un estudiante y los guarda en cobros
    public ArrayList<Cobro> getCobrosAlumno(int codigoAlumno){
          return new ArrayList<Cobro>();
    }

    //Obtiene el monto total que debe el alumno en la institución
    public double getMontoAcumuladoAlumno(int codigoAlumno){
        return 0.0;
    }

    //Retorna el siguiente cobro pendiente del alumno
    public Cobro getProximoCobroAlumno(int codigoAlumno){
        return new Cobro();
    }

    //Retorna los recargo para el siguiente mes a pagar
    public double getRecargosSiguienteMes(int codigoAlumno){
        return 0.0;
    }

    //Remueve los recargo de un cobro
    public void removeRecargos(int codigoCobro){

    }

    //Retorna el nombre del mes correspondiente al código ingesado
    public String getMesCobro(int codigoMes){
        return " ";
    }

    //Retorna la descripción del cobro corresponiente al código ingresado
    public String getDescripcionCobro(int codigoCobro){
        return " ";
    }

    public void setCobroComoNoPagado(int codigoCobro){
        
    }

    public void setCobroComoPagado(int codigoCobro){

    }

    //Metodos para Descripcionprivate private private private private private private private private private private private private private private private private private private private private private private private private
    public ArrayList<Map> getDescripciones(){
        return new ArrayList<Map>();
    }
    public int insertDescripcion(Map mapa){
        return 0;
    }

    public int removeDescripcion(int codigoDescripcion){
        return 0;
    }

}
